package cn.iocoder.yudao.module.member.controller.admin.siteagent.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.math.BigDecimal;

/**
 * 贴牌管理 VO
 *
 * @author feiyu
 */
@Schema(description = "管理后台 - 贴牌管理 VO")
@Data
public class SiteAgentVo {

    /**
     * 贴牌ID
     */
    @Schema(description = "贴牌ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "10001")
    private Long id;

    /**
     * 贴牌分销前缀/配置码
     */
    @Schema(description = "贴牌分销前缀", requiredMode = Schema.RequiredMode.REQUIRED, example = "agent01")
    private String siteCode;

    /**
     * 贴牌站点名称
     */
    @Schema(description = "贴牌站点名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "某某贴牌")
    private String siteName;

    /**
     * 主系统域名
     */
    @Schema(description = "主系统域名", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "https://agent.example.com")
    private String mainUrl;

    /**
     * 贴牌LOGO地址
     */
    @Schema(description = "贴牌LOGO地址", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "https://agent.example.com/logo.png")
    private String logoUrl;

    /**
     * 启动图地址
     */
    @Schema(description = "启动图地址", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "https://agent.example.com/launch.png")
    private String launchImgUrl;

    /**
     * 站点背景图地址
     */
    @Schema(description = "站点背景图地址", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "https://agent.example.com/bg.jpg")
    private String backgroundUrl;

    /**
     * 全局配色
     */
    @Schema(description = "全局配色", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "#9691FA")
    private String color;

    /**
     * 字体颜色
     */
    @Schema(description = "字体颜色", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "#000000")
    private String fontColor;

    /**
     * QQ群
     */
    @Schema(description = "QQ群", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "12345678")
    private String qqGroup;

    /**
     * 联系我们
     */
    @Schema(description = "联系我们", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "https://agent.example.com/contact")
    private String contactUrl;

    /**
     * 购买链接
     */
    @Schema(description = "购买链接", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "https://agent.example.com/buy")
    private String buyUrl;

    /**
     * 教程地址
     */
    @Schema(description = "教程地址", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "https://agent.example.com/tutorial")
    private String tutorialUrl;

    /**
     * 公告
     */
    @Schema(description = "公告", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "欢迎使用贴牌管理系统！")
    private String notice;

    /**
     * 兑换权限 0关1开
     */
    @Schema(description = "兑换权限(0关1开)", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1")
    private Boolean exchange;

    /**
     * 黑白名单 0关1开
     */
    @Schema(description = "黑白名单(0关1开)", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "0")
    private Boolean whitelist;

    /**
     * 导入权限 0关1开
     */
    @Schema(description = "导入权限(0关1开)", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1")
    private Boolean importPermissions;

    /**
     * 是否流量监控 0关1开
     */
    @Schema(description = "是否流量监控(0关1开)", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "0")
    private Boolean trafficFlag;

    /**
     * 独立池价格
     */
    @Schema(description = "独立池价格", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "199.99")
    private BigDecimal privatePrice;

    /**
     * 独立池成本
     */
    @Schema(description = "独立池成本", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "100.00")
    private BigDecimal privateCost;

    /**
     * 上传证书价格
     */
    @Schema(description = "上传证书价格", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "30.00")
    private BigDecimal upPrice;

    /**
     * 上传证书成本
     */
    @Schema(description = "上传证书成本", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "15.00")
    private BigDecimal upCost;

    /**
     * 备注
     */
    @Schema(description = "备注", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "演示专用贴牌")
    private String remark;

    /**
     * 贴牌版本号
     */
    @Schema(description = "贴牌版本号", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "v1.0.0")
    private String version;
}
